import xlrd
import xlwt
import os

# 动态路径（推荐）
script_dir = os.path.dirname(os.path.abspath(__file__))
file_name = os.path.join(script_dir, "成绩表.xlsx")

#打开Excel文件
xlsx = xlrd.open_workbook(file_name)
#获取第一个sheet
sheet = xlsx.sheet_by_index(0)
scores={}#字典，名字与分数的对应关系
#依次获取单元格数据，并且统计总分
for row in range(1, sheet.nrows):

    #获取每一行的单元格数据
    name = sheet.cell_value(row,1)
    #获取每一行的总分
    score = sheet.cell_value(row,3)
  
    if isinstance(score, str):
        try:
            score = float(score)
        except ValueError:
            score = 0  # 非数字值按0处理
    
    # 累计总分
    scores[name] = scores.get(name, 0) + score
# 4️⃣ 创建新工作簿写入结果
output_file = os.path.join(script_dir, "student_total_scores.xls")
wb = xlwt.Workbook()
ws = wb.add_sheet("总分统计")

# 写入表头
ws.write(0, 0, "姓名")
ws.write(0, 1, "总分")

# 写入数据
for idx, (name, total) in enumerate(scores.items()):
    ws.write(idx + 1, 0, name)
    ws.write(idx + 1, 1, total)

# 保存文件
wb.save(output_file)
print(f"📊 统计完成，结果已保存到 {output_file}")
